//
//  ZHReachabilityService.h
//  ZHNetworkKit
//
//  Created by green on 2018/3/21.
//  网络状态服务，网络状态回调请使用 EventBus 监听

#import <Foundation/Foundation.h>

//网络状态
typedef enum : NSInteger {
    ZHReachabilityStatusUnknown = -1,//未知
    ZHReachabilityStatusNotReachable = 0,//无网络
    ZHReachabilityStatusReachableViaWWAN = 1,//wan
    ZHReachabilityStatusReachableViaWiFi = 2//wifi
} ZHReachabilityStatus;


@class ZHReachabilityService;
@protocol ZHReachabilityServiceDelegate <NSObject>
@optional

/**
 网络状态变更

 @param service service description
 @param oldStatus 旧的状态
 */
- (void)zhreachabilityService:(ZHReachabilityService *)service statusChange:(NSInteger )oldStatus;
@end

@interface ZHReachabilityService : NSObject
/** 网络状态，默认 ZHReachabilityStatusUnknown */
@property (assign, nonatomic, readonly) ZHReachabilityStatus     status;


///MARK: - 单例
+ (instancetype)sharedService;

/// 适配swift 单例
+ (instancetype)sharedInstance;

///MARK: - start
///  开始
- (void)start;

///  停止
- (void)stop;


///MARK: - utils
///  是否是 wwan 网络
- (BOOL )isWWAN;


/// 是否有可用网络（wifi、wwan）
- (BOOL )isAvailable;

@end
